//
//  SaloonCar.m
//  Objc进阶Demo
//
//  Created by Don't update on 2018/7/14.
//  Copyright © 2018年 Don't update. All rights reserved.
//

#import "SaloonCar.h"

@implementation SaloonCar

/*
 +(void)load
 
 执行时机    在程序运行后立即执行
 若自身未定义，是否沿用父类的方法？   否
 类别中的定义  全都执行，但后于类中的方法
 +(void)initialize
 
 执行时机    在类的方法第一次被调时执行
 若自身未定义，是否沿用父类的方法？   是
 类别中的定义  覆盖类中的方法，只执行一个
 */

+(void)initialize{
    NSLog(@"initialize SaloonCar");
}

+(void)load{
    NSLog(@"load SaloonCar");
}

-(void)loadCarDelegate{
    NSLog(@"调用轿车方法");
    [self.delegate carRun];
}

-(void)buyCar{
    NSLog(@"购买汽车");
    //此处用于判断可选代理方法是否实现 实现返回YES 未实现返回NO
    if([self.delegate respondsToSelector:@selector(carVoice)]){
        [self.delegate carVoice];
        NSLog(@"实现");
    }
    else{
        NSLog(@"未实现");
    }
    
}



@end
